using DefaultNamespace;
using UnityEditor;
using UnityEngine;
[CustomEditor(typeof(MonoTest), true)]
public class MonoTestEditor : Editor
{
    private MonoTest m_Target;
    private SerializedProperty m_IntValue;
    private SerializedProperty m_BoolValue;
    private SerializedProperty m_EnumValue;
    private void OnEnable()
    {
        m_Target = target as MonoTest;
        m_IntValue = serializedObject.FindProperty("intValue");
        m_BoolValue = serializedObject.FindProperty("boolValue");
        m_EnumValue = serializedObject.FindProperty("enumValue");
    }
    public override void OnInspectorGUI()
    {
        // base.OnInspectorGUI(); // 将默认的绘制关闭
        
        serializedObject.Update();
        
        // 使用基本的绘制
        // EditorGUILayout.PropertyField(m_IntValue, new GUIContent("这是一个整型值的提示"));
        // EditorGUILayout.PropertyField(m_BoolValue);    
        // EditorGUILayout.PropertyField(m_EnumValue);
        
        var content = new GUIContent {text = "整型值", tooltip = "这是一个整型值的提示"};
        EditorGUILayout.IntSlider(m_IntValue, 0, 100, content); // 使用一个滑动条来代替基本的绘制, 可以规定上下界, 可以修改相关提示
        
        var curValue = m_BoolValue.boolValue;
        m_BoolValue.boolValue = EditorGUILayout.Toggle("布尔值", m_BoolValue.boolValue);
        if (m_BoolValue.boolValue != curValue)
            Debug.LogError("value changed!" + m_BoolValue.boolValue); // 在值变化后进行一些操作
        
        //m_BoolValue.boolValue = EditorGUILayout.Toggle("布尔值", m_BoolValue.boolValue);
        // if (serializedObject.ApplyModifiedProperties())
        // Debug.LogError("value changed!" + m_BoolValue.boolValue); // 在值变化后进行一些操作
        
        m_EnumValue.intValue = (int)(MonoTest.EnumValue)EditorGUILayout.EnumPopup("enumValue", (MonoTest.EnumValue)m_EnumValue.intValue); // 使用自定义的枚举值
        
        serializedObject.ApplyModifiedProperties();
    }
}